<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>react中的事件处理</title>
  </head>

  <body>
    <div id="test"></div>

    <script type="text/javascript" src="../js/react.development.js"></script>
    <script
      type="text/javascript"
      src="../js/react-dom.development.js"
    ></script>
    <script type="text/javascript" src="../js/babel.min.js"></script>

    <script type="text/babel">
      class Demo extends React.Component {

        /* 
				(1).通过onXxx属性指定事件处理函数(注意大小写)
						a.React使用的是自定义(合成)事件, 而不是使用的原生DOM事件 —————— 为了更好的兼容性
						b.React中的事件是通过事件委托方式处理的(委托给组件最外层的元素) ————————为了的高效
				(2).通过event.target得到发生事件的DOM元素对象 ——————————不要过度使用ref
			 */

        myRef = React.createRef();
        myRef2 = React.createRef();

        render() {
          return (
            <div>
              <input ref={this.myRef} type="text" placeholder='点击按钮提示'/>&nbsp;
              <button onClick={this.showDate}>点击提示左侧数据</button>&nbsp;
              <input onBlur={this.showDate2}  type="text" placeholder='失去焦点提示'/>
            </div>
          );
        }

        showDate = () =>{
          alert(this.myRef.current.value)
        } 
        
        showDate2 = (event) =>{
          alert(event.target.value)
        } 

      }

      ReactDOM.render(<Demo />, document.getElementById("test"));
    </script>
  </body>
</html>
